home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyc (Python 2.6)
-
- '''Fixer for execfile.
-
- This converts usages of the execfile function into calls to the built-in
- exec() function.
- '''
- from import fixer_base
- from fixer_util import Comma, Name, Call, LParen, RParen, Dot, Node, ArgList, String, syms
-
- class FixExecfile(fixer_base.BaseFix):
- PATTERN = "\n power< 'execfile' trailer< '(' arglist< filename=any [',' globals=any [',' locals=any ] ] > ')' > >\n |\n power< 'execfile' trailer< '(' filename=any ')' > >\n "
-
- def transform(self, node, results):
- if not results:
- raise AssertionError
- filename = results['filename']
- globals = results.get('globals')
- locals = results.get('locals')
- execfile_paren = node.children[-1].children[-1].clone()
- open_args = ArgList([
- filename.clone()], rparen = execfile_paren)
- open_call = Node(syms.power, [
- Name('open'),
- open_args])
- read = [
- Node(syms.trailer, [
- Dot(),
- Name('read')]),
- Node(syms.trailer, [
- LParen(),
- RParen()])]
- open_expr = [
- open_call] + read
- filename_arg = filename.clone()
- filename_arg.set_prefix(' ')
- exec_str = String("'exec'", ' ')
- compile_args = open_expr + [
- Comma(),
- filename_arg,
- Comma(),
- exec_str]
- compile_call = Call(Name('compile'), compile_args, '')
- args = [
- compile_call]
- if globals is not None:
- args.extend([
- Comma(),
- globals.clone()])
-
- if locals is not None:
- args.extend([
- Comma(),
- locals.clone()])
-
- return Call(Name('exec'), args, prefix = node.get_prefix())
-
-
-